Networks, such as Content Delivery Networks (CDN), are increasingly used to distribute content, such as videos, multimedia, images, audio files, documents, software, data files, patches, and other electronic resources, to end users on behalf of one or more content providers. Using a CDN allows the content providers to increase the speed and reliability of content delivery without deploying additional infrastructure. Moreover, the end users obtain the content with fewer delays. However, many CDNs are generally not configured to efficiently deliver content while adapting to changes in the network.
For example, many CDNs are generally not configured to efficiently deliver content in a mobile environment, particularly as a user changes locations or networks while consuming the content. In the past, users tended to consume higher quality, larger sized content (e.g., a movie) primarily via a wired access network. In general, user devices are configured to prefer using the wired network over a wireless network, such as a cellular network, a WiMAX network, a WiFi network, or the like, where available, for data exchange because many wireless networks cannot handle data exchange as quickly or reliably as wired networks. However, as portable user devices, such as phones and tablets, have become capable of consuming higher quality content, users have come to expect content to be readily available outside of wired access networks.
Many CDN infrastructures include an access network, such as an Internet Service Provider (ISP), having a CDN component that delivers content to a user device. However, users may change location or networks while consuming the content. For example, a user may begin watching a video using a wired access network (e.g., via a residential ISP) and disconnect from the access network while continuing to watch the video. In doing so, the user device may become connected to a wireless network, such as a cellular network. Because the user began watching the video via the access network, the session is pinned to a server in the CDN based on the location and network policies of the access network, which may no longer be the optimal server from which to serve the content due to the network change.
Stated differently, to begin consuming on-demand and live video, audio, or other streaming media, the user device fetches a manifest file, which generally includes a uniform resource locator (URL) or a sequence of uniform resource identifiers (URIs) that identify the locations of consecutive segmented media files of the stream. The server from which the segments are served is determined based on the location of the user device using various policies implemented by the CDN. If the user device retrieves the manifest file using the access network, the server from which the segments are served is determined based, at least in part, on the location of the access network.
The user device downloads the segmented media files identified in the manifest file and presents the stream to the user. Because the user device is in the process of presenting the stream to the user, when the user disconnects from the access network and connects to another network, such as the wireless network, the user device does not re-fetch the manifest file. Accordingly, even though the user has changed attachment points to the CDN (i.e., from the access network to the wireless network), the CDN continues to direct the user device to retrieve the media segments from the original server designated based on the location of the access network, which may no longer be the optimal location from which to respond to requests from the user device.
Similarly, over the lifetime of the connection of the user device to the network to retrieve and present content, the conditions of the network may change, thereby impacting the quality of the connection and the user's satisfaction with the delivery and presentation of the content. For example, one or more routers or switches may fail in the network leading to suboptimal quality of the connection. Stated differently, many CDNs include several content servers from which the content can be supplied to a user device. To reduce network usage and performance, a CDN typically will attempt to provide the content from a content server that is separated by as little network infrastructure as possible from the user device, with particular emphasis on low latency. The session is pinned to the selected content server in the CDN along a network path. However, even if the network conditions change such that the delivery of the content from the selected content server over the network path is suboptimal, the CDN generally continues to serve the content from the selected content server to the user device over the network path. Accordingly, CDNs typically fail to adapt to changes in the performance of the network and/or attachment point of the user device to the network during the delivery of content.
It is with these observations in mind, among others, that various aspects of the present disclosure were conceived and developed.